﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
namespace 凯旋归来管理端.models
{
    public class 物品列表
    {
        public int Id;
        public int 信息ID;
        public Int64 售价;
        public Int64 修理价格;
        public byte 名称颜色;
        public string 中文名称;
        public int 数量;
        public float 当前耐久;
        public float 总耐久;
        public bool 限时道具;
        public bool 可否交易;
        public string 附加属性;
        public float 物品倍率;
        public static 物品列表[] 数据表转数组(DataTable dt)
        {
            物品列表[] ret = new 物品列表[dt.Rows.Count];
            for(int i=0;i<dt.Rows.Count;i++)
            {
                ret[i] = new 物品列表();
                int.TryParse(dt.Rows[i]["id"].ToString(), out ret[i].Id);
                int.TryParse(dt.Rows[i]["信息id"].ToString(), out ret[i].信息ID);
                Int64.TryParse(dt.Rows[i]["售价"].ToString(), out ret[i].售价);
                Int64.TryParse(dt.Rows[i]["修理价格"].ToString(), out ret[i].修理价格);
                byte.TryParse(dt.Rows[i]["名称颜色"].ToString(), out ret[i].名称颜色);
                ret[i].中文名称 = dt.Rows[i]["中文名称"].ToString();
                int.TryParse(dt.Rows[i]["数量"].ToString(), out ret[i].数量);
                float.TryParse(dt.Rows[i]["当前耐久"].ToString(), out ret[i].当前耐久);
                float.TryParse(dt.Rows[i]["总耐久"].ToString(), out ret[i].总耐久);
                bool.TryParse(dt.Rows[i]["限时道具"].ToString(), out ret[i].限时道具);
                bool.TryParse(dt.Rows[i]["可否交易"].ToString(), out ret[i].可否交易);
                ret[i].附加属性 = dt.Rows[i]["附加属性"].ToString();
                float.TryParse(dt.Rows[i]["物品倍率"].ToString(), out ret[i].物品倍率);
            }
            return ret;
        }
        public string 保存已有物品(string connstr)
        {
            
            string sql = "UPDATE 物品列表 SET 信息ID=@0,售价=@1,修理价格=@2,名称颜色=@3,中文名称=@4,数量=@5,当前耐久=@6,总耐久=@7,限时道具=@8,可否交易=@9,附加属性=@10,物品倍率=@11 WHERE id=@12";
            using (MySqlConnection conn = new MySqlConnection(connstr))
            {
                try
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    cmd.Parameters.AddWithValue("@0", this.信息ID);
                    cmd.Parameters.AddWithValue("@1", this.售价);
                    cmd.Parameters.AddWithValue("@2", this.修理价格);
                    cmd.Parameters.AddWithValue("@3", this.名称颜色);
                    cmd.Parameters.AddWithValue("@4", this.中文名称);
                    cmd.Parameters.AddWithValue("@5", this.数量);
                    cmd.Parameters.AddWithValue("@6", this.当前耐久);
                    cmd.Parameters.AddWithValue("@7", this.总耐久);
                    cmd.Parameters.AddWithValue("@8", this.限时道具);
                    cmd.Parameters.AddWithValue("@9", this.可否交易);
                    cmd.Parameters.AddWithValue("@10", this.附加属性);
                    cmd.Parameters.AddWithValue("@11", this.物品倍率);
                    cmd.Parameters.AddWithValue("@12", this.Id);
                    cmd.ExecuteNonQuery();
                }catch(Exception ex)
                {
                    return ex.ToString(); ;
                }
                finally
                {
                    conn.Close();
                }
            }
            return "";
        }
        public string 新建物品(string connstr,int id)
        {

            string sql = "INSERT INTO 物品列表 (信息ID,售价,修理价格,名称颜色,中文名称,数量,当前耐久,总耐久,限时道具,可否交易,附加属性,物品倍率,id)VALUE(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12)";
            using (MySqlConnection conn = new MySqlConnection(connstr))
            {
                try
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    cmd.Parameters.AddWithValue("@0", this.信息ID);
                    cmd.Parameters.AddWithValue("@1", this.售价);
                    cmd.Parameters.AddWithValue("@2", this.修理价格);
                    cmd.Parameters.AddWithValue("@3", this.名称颜色);
                    cmd.Parameters.AddWithValue("@4", this.中文名称);
                    cmd.Parameters.AddWithValue("@5", this.数量);
                    cmd.Parameters.AddWithValue("@6", this.当前耐久);
                    cmd.Parameters.AddWithValue("@7", this.总耐久);
                    cmd.Parameters.AddWithValue("@8", this.限时道具);
                    cmd.Parameters.AddWithValue("@9", this.可否交易);
                    cmd.Parameters.AddWithValue("@10", this.附加属性);
                    cmd.Parameters.AddWithValue("@11", this.物品倍率);
                    cmd.Parameters.AddWithValue("@12", id);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    return ex.ToString(); ;
                }
                finally
                {
                    conn.Close();
                }
            }
            return "";
        }
    }
}
